The present disclosure generally relates to in-memory caches, and more particularly to replication of in-memory caches.
An in-memory cache may be synchronously replicated across sites. Synchronous replication may be reliable because the source node sending a copy of the in-memory data receives acknowledgements from one or more destination nodes indicating that the data was received. A large amount of data may be sent to the destination nodes (e.g., multiple modifications of the same data). If a single node of the destination nodes fails to send the source node an acknowledgement, the whole operation may fail. The time it takes to achieve a successful commit or a roll-back may be quite long.
Additionally, the more nodes in the set of participating nodes, the higher the likelihood is that something may go wrong. For example, if the set of participating nodes includes N nodes and the probability of one participating node failing to apply the transaction based on the first communication is two percent, then the overall probability of the transaction failing is (N*2) %. For example, if N is five the failure probability is 10%, and if N is ten the failure probability is 20%, and so on. Further, communications between the local and remote sites include multiple components, e.g., the bridge and site master that dispatches to the right target at the remote site. Accordingly, N may include not only the participants, but also these components.